﻿using System;
using System.Collections;
using System.Collections.Generic;

namespace PVTLibrary
{
    /// <summary>
    /// 
    /// </summary>
    public enum PhaseName
    {
        Liquid,
        Vapor,
        Mixture,
    }

    /// <summary>
    /// 
    /// </summary>
    public enum ReactionType
    {
        Equilibrium,
        Kinetic,
        Heterogeneous_Catalytic,
        Conversion
    }


    public enum ReactionBasis
    {
        Activity,
        Fugacity,
        MolarConc,
        MassConc,
        MolarFrac,
        MassFrac,
        PartialPress
    }

    [Serializable]
    public class TwoPhaseMixtureProperties
    {

        protected Nullable<double> tpmp_kvalue = null;
        public Nullable<double> kvalue
        {
            get { return tpmp_kvalue; }
            set { tpmp_kvalue = value; }
        }

        protected Nullable<double> tpmp_logKvalue = null;
        public Nullable<double> logKvalue
        {
            get { return tpmp_logKvalue; }
            set { tpmp_logKvalue = value; }
        }

        protected Nullable<double> tpmp_surfaceTension = null;
        public Nullable<double> surfaceTension
        {
            get { return tpmp_surfaceTension; }
            set { tpmp_surfaceTension = value; }
        }
    }



    [Serializable]
    public class InteractionParameter : ICloneable
    {
        public string Comp1 = "";
        public string Comp2 = "";
        public string Model = "";
        public string DataType = "";
        public string Description = "";
        public string RegressionFile = "";
        public Dictionary<string, Object> Parameters;

        public InteractionParameter()
        {
            Parameters = new Dictionary<string, Object>();
        }

        object ICloneable.Clone()
        {
            return null;
            //modif adel
            //Return ObjectCopy(Me);
        }
        /*
        Function ObjectCopy(ByVal obj As InteractionParameter) As InteractionParameter

            Dim objMemStream As New MemoryStream(50000)
            Dim objBinaryFormatter As New BinaryFormatter(null, New StreamingContext(StreamingContextStates.Clone))

            objBinaryFormatter.Serialize(objMemStream, obj)

            objMemStream.Seek(0, SeekOrigin.Begin)

            ObjectCopy = objBinaryFormatter.Deserialize(objMemStream)

            objMemStream.Close()
        End Function
            */
    }




}

